--[[
    @Author       : GGELUA
    @Date         : 2022-02-15 13:43:33
Last Modified by: GGELUA
Last Modified time: 2023-05-25 20:17:30
--]]
local 人物属性 = 多开数据[多开数据.当前].__UI界面.窗口层:创建我的窗口("人物属性", 0, 0, 775, 483)
local 当前 = 多开数据.当前
local function 生活技能消耗(目标技能等级)
    if 目标技能等级 == 0 or 目标技能等级 >= 180 then
        目标技能等级 = 1
    end
    local 技能消耗 = {}
    技能消耗[1] = { 经验 = 16, 金钱 = 6 }
    技能消耗[2] = { 经验 = 32, 金钱 = 12 }
    技能消耗[3] = { 经验 = 52, 金钱 = 19 }
    技能消耗[4] = { 经验 = 75, 金钱 = 28 }
    技能消耗[5] = { 经验 = 103, 金钱 = 38 }
    技能消耗[6] = { 经验 = 136, 金钱 = 51 }
    技能消耗[7] = { 经验 = 179, 金钱 = 67 }
    技能消耗[8] = { 经验 = 231, 金钱 = 86 }
    技能消耗[9] = { 经验 = 295, 金钱 = 110 }
    技能消耗[10] = { 经验 = 372, 金钱 = 139 }
    技能消耗[11] = { 经验 = 466, 金钱 = 174 }
    技能消耗[12] = { 经验 = 578, 金钱 = 216 }
    技能消耗[13] = { 经验 = 711, 金钱 = 266 }
    技能消耗[14] = { 经验 = 867, 金钱 = 325 }
    技能消耗[15] = { 经验 = 1049, 金钱 = 393 }
    技能消耗[16] = { 经验 = 1260, 金钱 = 472 }
    技能消耗[17] = { 经验 = 1503, 金钱 = 563 }
    技能消耗[18] = { 经验 = 1780, 金钱 = 667 }
    技能消耗[19] = { 经验 = 2096, 金钱 = 786 }
    技能消耗[20] = { 经验 = 2452, 金钱 = 919 }
    技能消耗[21] = { 经验 = 2854, 金钱 = 1070 }
    技能消耗[22] = { 经验 = 3304, 金钱 = 1238 }
    技能消耗[23] = { 经验 = 3807, 金钱 = 1426 }
    技能消耗[24] = { 经验 = 4364, 金钱 = 1636 }
    技能消耗[25] = { 经验 = 4983, 金钱 = 1868 }
    技能消耗[26] = { 经验 = 5664, 金钱 = 2124 }
    技能消耗[27] = { 经验 = 6415, 金钱 = 2404 }
    技能消耗[28] = { 经验 = 7238, 金钱 = 2714 }
    技能消耗[29] = { 经验 = 8138, 金钱 = 3050 }
    技能消耗[30] = { 经验 = 9120, 金钱 = 3420 }
    技能消耗[31] = { 经验 = 10188, 金钱 = 3820 }
    技能消耗[32] = { 经验 = 11347, 金钱 = 4255 }
    技能消耗[33] = { 经验 = 12602, 金钱 = 4725 }
    技能消耗[34] = { 经验 = 13959, 金钱 = 5234 }
    技能消耗[35] = { 经验 = 15423, 金钱 = 5783 }
    技能消耗[36] = { 经验 = 16998, 金钱 = 6374 }
    技能消耗[37] = { 经验 = 18692, 金钱 = 7009 }
    技能消耗[38] = { 经验 = 20508, 金钱 = 7690 }
    技能消耗[39] = { 经验 = 22452, 金钱 = 8419 }
    技能消耗[40] = { 经验 = 24532, 金钱 = 9199 }
    技能消耗[41] = { 经验 = 26753, 金钱 = 10032 }
    技能消耗[42] = { 经验 = 29121, 金钱 = 10920 }
    技能消耗[43] = { 经验 = 31642, 金钱 = 11865 }
    技能消耗[44] = { 经验 = 34323, 金钱 = 12871 }
    技能消耗[45] = { 经验 = 37169, 金钱 = 13938 }
    技能消耗[46] = { 经验 = 40188, 金钱 = 15070 }
    技能消耗[47] = { 经验 = 43388, 金钱 = 16270 }
    技能消耗[48] = { 经验 = 46773, 金钱 = 17540 }
    技能消耗[49] = { 经验 = 50352, 金钱 = 18882 }
    技能消耗[50] = { 经验 = 54132, 金钱 = 20299 }
    技能消耗[51] = { 经验 = 58120, 金钱 = 21795 }
    技能消耗[52] = { 经验 = 62324, 金钱 = 23371 }
    技能消耗[53] = { 经验 = 66750, 金钱 = 25031 }
    技能消耗[54] = { 经验 = 71407, 金钱 = 26777 }
    技能消耗[55] = { 经验 = 76303, 金钱 = 28613 }
    技能消耗[56] = { 经验 = 81444, 金钱 = 30541 }
    技能消耗[57] = { 经验 = 86840, 金钱 = 32565 }
    技能消耗[58] = { 经验 = 92500, 金钱 = 34687 }
    技能消耗[59] = { 经验 = 98430, 金钱 = 36911 }
    技能消耗[60] = { 经验 = 104640, 金钱 = 39240 }
    技能消耗[61] = { 经验 = 111136, 金钱 = 41676 }
    技能消耗[62] = { 经验 = 117931, 金钱 = 44224 }
    技能消耗[63] = { 经验 = 125031, 金钱 = 46886 }
    技能消耗[64] = { 经验 = 132444, 金钱 = 49666 }
    技能消耗[65] = { 经验 = 140183, 金钱 = 52568 }
    技能消耗[66] = { 经验 = 148253, 金钱 = 55595 }
    技能消耗[67] = { 经验 = 156666, 金钱 = 58749 }
    技能消耗[68] = { 经验 = 165430, 金钱 = 62036 }
    技能消耗[69] = { 经验 = 174556, 金钱 = 65458 }
    技能消耗[70] = { 经验 = 184052, 金钱 = 69019 }
    技能消耗[71] = { 经验 = 193930, 金钱 = 72723 }
    技能消耗[72] = { 经验 = 204198, 金钱 = 76574 }
    技能消耗[73] = { 经验 = 214868, 金钱 = 80575 }
    技能消耗[74] = { 经验 = 225948, 金钱 = 84730 }
    技能消耗[75] = { 经验 = 237449, 金钱 = 89043 }
    技能消耗[76] = { 经验 = 249383, 金钱 = 93518 }
    技能消耗[77] = { 经验 = 261760, 金钱 = 98160 }
    技能消耗[78] = { 经验 = 274589, 金钱 = 102971 }
    技能消耗[79] = { 经验 = 287884, 金钱 = 107956 }
    技能消耗[80] = { 经验 = 301652, 金钱 = 113119 }
    技能消耗[81] = { 经验 = 315908, 金钱 = 118465 }
    技能消耗[82] = { 经验 = 330662, 金钱 = 123998 }
    技能消耗[83] = { 经验 = 345924, 金钱 = 129721 }
    技能消耗[84] = { 经验 = 361708, 金钱 = 135640 }
    技能消耗[85] = { 经验 = 378023, 金钱 = 141758 }
    技能消耗[86] = { 经验 = 394882, 金钱 = 148080 }
    技能消耗[87] = { 经验 = 412297, 金钱 = 154611 }
    技能消耗[88] = { 经验 = 430280, 金钱 = 161355 }
    技能消耗[89] = { 经验 = 448844, 金钱 = 168316 }
    技能消耗[90] = { 经验 = 468000, 金钱 = 175500 }
    技能消耗[91] = { 经验 = 487760, 金钱 = 182910 }
    技能消耗[92] = { 经验 = 508137, 金钱 = 190551 }
    技能消耗[93] = { 经验 = 529145, 金钱 = 198429 }
    技能消耗[94] = { 经验 = 550796, 金钱 = 206548 }
    技能消耗[95] = { 经验 = 573103, 金钱 = 214913 }
    技能消耗[96] = { 经验 = 596078, 金钱 = 223529 }
    技能消耗[97] = { 经验 = 619735, 金钱 = 232400 }
    技能消耗[98] = { 经验 = 644088, 金钱 = 241533 }
    技能消耗[99] = { 经验 = 669149, 金钱 = 250931 }
    技能消耗[100] = { 经验 = 694932, 金钱 = 260599 }
    技能消耗[101] = { 经验 = 721452, 金钱 = 270544 }
    技能消耗[102] = { 经验 = 748722, 金钱 = 280770 }
    技能消耗[103] = { 经验 = 776755, 金钱 = 291283 }
    技能消耗[104] = { 经验 = 805566, 金钱 = 302087 }
    技能消耗[105] = { 经验 = 835169, 金钱 = 313188 }
    技能消耗[106] = { 经验 = 865579, 金钱 = 324592 }
    技能消耗[107] = { 经验 = 896809, 金钱 = 336303 }
    技能消耗[108] = { 经验 = 928876, 金钱 = 348328 }
    技能消耗[109] = { 经验 = 961792, 金钱 = 360672 }
    技能消耗[110] = { 经验 = 995572, 金钱 = 373339 }
    技能消耗[111] = { 经验 = 1030234, 金钱 = 386337 }
    技能消耗[112] = { 经验 = 1065190, 金钱 = 399671 }
    技能消耗[113] = { 经验 = 1102256, 金钱 = 413346 }
    技能消耗[114] = { 经验 = 1139649, 金钱 = 427368 }
    技能消耗[115] = { 经验 = 1177983, 金钱 = 441743 }
    技能消耗[116] = { 经验 = 1217273, 金钱 = 456477 }
    技能消耗[117] = { 经验 = 1256104, 金钱 = 471576 }
    技能消耗[118] = { 经验 = 1298787, 金钱 = 487045 }
    技能消耗[119] = { 经验 = 1341043, 金钱 = 502891 }
    技能消耗[120] = { 经验 = 1384320, 金钱 = 519120 }
    技能消耗[121] = { 经验 = 1428632, 金钱 = 535737 }
    技能消耗[122] = { 经验 = 1473999, 金钱 = 552749 }
    技能消耗[123] = { 经验 = 1520435, 金钱 = 570163 }
    技能消耗[124] = { 经验 = 1567957, 金钱 = 587984 }
    技能消耗[125] = { 经验 = 1616583, 金钱 = 606218 }
    技能消耗[126] = { 经验 = 1666328, 金钱 = 624873 }
    技能消耗[127] = { 经验 = 1717211, 金钱 = 643954 }
    技能消耗[128] = { 经验 = 1769248, 金钱 = 663468 }
    技能消耗[129] = { 经验 = 1822456, 金钱 = 683421 }
    技能消耗[130] = { 经验 = 1876852, 金钱 = 703819 }
    技能消耗[131] = { 经验 = 1932456, 金钱 = 724671 }
    技能消耗[132] = { 经验 = 1989284, 金钱 = 745981 }
    技能消耗[133] = { 经验 = 2047353, 金钱 = 767757 }
    技能消耗[134] = { 经验 = 2106682, 金钱 = 790005 }
    技能消耗[135] = { 经验 = 2167289, 金钱 = 812733 }
    技能消耗[136] = { 经验 = 2229192, 金钱 = 835947 }
    技能消耗[137] = { 经验 = 2292410, 金钱 = 859653 }
    技能消耗[138] = { 经验 = 2356960, 金钱 = 883860 }
    技能消耗[139] = { 经验 = 2422861, 金钱 = 908573 }
    技能消耗[140] = { 经验 = 2490132, 金钱 = 933799 }
    技能消耗[141] = { 经验 = 2558792, 金钱 = 959547 }
    技能消耗[142] = { 经验 = 2628860, 金钱 = 985822 }
    技能消耗[143] = { 经验 = 2700356, 金钱 = 1012633 }
    技能消耗[144] = { 经验 = 2773296, 金钱 = 1039986 }
    技能消耗[145] = { 经验 = 2847703, 金钱 = 1067888 }
    技能消耗[146] = { 经验 = 2923593, 金钱 = 1096347 }
    技能消耗[147] = { 经验 = 3000989, 金钱 = 1125371 }
    技能消耗[148] = { 经验 = 3079908, 金钱 = 1154965 }
    技能消耗[149] = { 经验 = 3160372, 金钱 = 1185139 }
    技能消耗[150] = { 经验 = 3242400, 金钱 = 1215900 }
    技能消耗[151] = { 经验 = 6652022, 金钱 = 2494508 }
    技能消耗[152] = { 经验 = 6822452, 金钱 = 2558419 }
    技能消耗[153] = { 经验 = 6996132, 金钱 = 2623549 }
    技能消耗[154] = { 经验 = 7173104, 金钱 = 2689914 }
    技能消耗[155] = { 经验 = 7353406, 金钱 = 2757527 }
    技能消耗[156] = { 经验 = 11305620, 金钱 = 4239607 }
    技能消耗[157] = { 经验 = 11586254, 金钱 = 4344845 }
    技能消耗[158] = { 经验 = 11872072, 金钱 = 4452027 }
    技能消耗[159] = { 经验 = 12163140, 金钱 = 4561177 }
    技能消耗[160] = { 经验 = 12459518, 金钱 = 4672319 }
    技能消耗[161] = { 经验 = 15033471, 金钱 = 450041 }
    技能消耗[162] = { 经验 = 15315219, 金钱 = 4594563 }
    技能消耗[163] = { 经验 = 15600468, 金钱 = 4680138 }
    技能消耗[164] = { 经验 = 15889236, 金钱 = 4766769 }
    技能消耗[165] = { 经验 = 16181550, 金钱 = 4854465 }
    技能消耗[166] = { 经验 = 16477425, 金钱 = 4943226 }
    技能消耗[167] = { 经验 = 16776885, 金钱 = 5033064 }
    技能消耗[168] = { 经验 = 17079954, 金钱 = 5123985 }
    技能消耗[169] = { 经验 = 17386650, 金钱 = 5215995 }
    技能消耗[170] = { 经验 = 17697000, 金钱 = 5309100 }
    技能消耗[171] = { 经验 = 24014692, 金钱 = 7204407 }
    技能消耗[172] = { 经验 = 24438308, 金钱 = 7331490 }
    技能消耗[173] = { 经验 = 24866880, 金钱 = 7460064 }
    技能消耗[174] = { 经验 = 25300432, 金钱 = 7590129 }
    技能消耗[175] = { 经验 = 25739000, 金钱 = 7721700 }
    技能消耗[176] = { 经验 = 32728255, 金钱 = 9818475 }
    技能消耗[177] = { 经验 = 33289095, 金钱 = 9986727 }
    技能消耗[178] = { 经验 = 33856310, 金钱 = 10156893 }
    技能消耗[179] = { 经验 = 34492930, 金钱 = 10328979 }
    技能消耗[180] = { 经验 = 40842000, 金钱 = 12252600 }
    return { 经验 = 技能消耗[目标技能等级].经验, 金钱 = 技能消耗[目标技能等级].金钱 / 2, 帮贡 = 目标技能等级, 需求 = 目标技能等级 * 5 }
end

function 人物属性:初始化()
    __置窗口坐标(self)
    self:置精灵(置窗口背景("人物属性", 0, 12, 720, 470))
    self.选中技能 = nil
    self.技能选中 = nil
end

function 人物属性:打开()
    self:置可见(true)
    人物属性.人物按钮:置选中(true)
    人物属性.人物:重置()
end

local 关闭 = 人物属性:创建我的按钮(__res:getPNGCC(1, 401, 0, 46, 46), "关闭", 680, 0)

function 关闭:左键弹起(x, y, msg)
    多开数据[当前].__UI界面.窗口层.人物属性:置可见(false)
end

local 人物按钮 = 人物属性:创建我的单选按钮(__res:getPNGCC(1, 686, 0, 48, 98, true), __res:getPNGCC(1, 737, 0, 54, 99, true), "人物按钮", 719,
    61, "人\n物")

function 人物按钮:左键按下(消息, x, y)
    人物属性.人物:重置()
end

local 技能按钮 = 人物属性:创建我的单选按钮(__res:getPNGCC(1, 686, 0, 48, 98, true), __res:getPNGCC(1, 737, 0, 54, 99, true), "技能按钮", 719,
    162, "技\n能")

function 技能按钮:左键按下(消息, x, y)
    人物属性.技能:重置()
end

local 修炼按钮 = 人物属性:创建我的单选按钮(__res:getPNGCC(1, 686, 0, 48, 98, true), __res:getPNGCC(1, 737, 0, 54, 99, true), "修炼按钮", 719,
    262, "修\n炼")

function 修炼按钮:左键按下(消息, x, y)
    人物属性.修炼:重置()
end

----------------------------------------------------人物分类

local 人物 = 人物属性:创建控件("人物", 0, 0, 773, 483)

function 人物:初始化()
    self.梦幻秀 = __res:getPNGCC(1, 792, 0, 270, 380):到精灵()
    self.经验背景 = __res:getPNGCC(1, 400, 109, 185, 17):到精灵()
    local nsf = require('SDL.图像')(315, 470)
    if nsf:渲染开始() then
        __res:getPNGCC(1, 792, 0, 270, 380):显示(22, 50)
        __res:getPNGCC(1, 400, 109, 185, 17):显示(63, 441)
        字体18:置颜色(255, 255, 255)
        字体18:取图像("经验"):置混合(0):显示(22, 440)
        local lssj = 取头像(多开数据[当前 or self and self.当前].角色信息.模型)
        if 多开数据[当前 or self and self.当前].角色信息.模型=="影精灵" then
            __res:取图像(__res:取地址('shape/mx/', lssj[6])):显示(61, 383-235)
        else
            __res:取图像(__res:取地址('shape/mx/', lssj[6])):显示(153, 383)
        end

        字体18:取图像(多开数据[当前 or self and self.当前].角色信息.名称):显示(67, 52)
        nsf:渲染结束()
    end
    self:置精灵(nsf:到精灵())
    self.门派 = "无\n门\n派"
end

function 人物:重置()
    self:置可见(true)
    人物属性.技能:置可见(false)
    人物属性.修炼:置可见(false)
    人物:属性重置()
    人物.属性按钮:置选中(true)
    人物.属性.普通属性按钮:置选中(true)
    人物.属性.普通属性:置可见(true)
    人物.属性.更多属性:置可见(false)
    人物.属性:置可见(true)
    人物.信息:置可见(false)
    if 多开数据[当前 or self and self.当前].角色信息.历劫 and 多开数据[当前 or self and self.当前].角色信息.历劫.化圣 then
        人物.升级按钮:置可见(false)
        人物.化境按钮:置可见(true)
    else
        人物.化境按钮:置可见(false)
        人物.升级按钮:置可见(true)
    end
end

function 人物:属性重置()
    人物.经验条:置位置(math.floor(多开数据[当前 or self and self.当前].角色信息.当前经验 / 多开数据[当前 or self and self.当前].角色信息.最大经验 * 100))
    人物.属性.气血条:置位置(math.floor(多开数据[当前 or self and self.当前].角色信息.气血 / 多开数据[当前 or self and self.当前].角色信息.最大气血 * 100))
    人物.属性.魔法条:置位置(math.floor(多开数据[当前 or self and self.当前].角色信息.魔法 / 多开数据[当前 or self and self.当前].角色信息.最大魔法 * 100))
    人物.属性.愤怒条:置位置(math.floor(多开数据[当前 or self and self.当前].角色信息.愤怒 / 150 * 100))
    人物.属性.普通属性:重置()
    self.门派 = 多开数据[当前].__主控:取门派()
    local nsf = require('SDL.图像')(315, 200)
    if nsf:渲染开始() then
        if 多开数据[当前 or self and self.当前].角色信息.化境 then
            字体18:置颜色(246, 42, 210)
            字体18:取我的描边图像(
                多开数据[当前].__主控:数字转境(多开数据[当前 or self and self.当前].角色信息.化境.境界) ..
                多开数据[当前].__主控:数字转天(多开数据[当前 or self and self.当前].角色信息.化境.天), 0, 0, 0, 255):显示(180, 52)
        else
            字体18:置颜色(__取颜色('白色'))
            字体18:取图像(多开数据[当前 or self and self.当前].角色信息.等级 .. "级"):显示(202, 52)
        end
        字体18:置颜色(__取颜色('白色'))
        字体18:取图像(self.门派):显示(28, 102)
        nsf:渲染结束()
    end
    self.图像 = nsf:到精灵()
end

function 人物:显示(x, y)
    if self.图像 then
        self.图像:显示(x, y)
    end
end

local 经验条 = 人物:创建进度("经验条", 63, 442, 183, 16)
function 经验条:初始化()
    self:置精灵(__res:getPNGCC(1, 587, 108, 183, 16):到精灵())
end

function 经验条:显示(x, y)
    字体18:显示(x + 10, y - 2,
        string.format("%s/%s", 多开数据[当前 or self and self.当前].角色信息.当前经验, 多开数据[当前 or self and self.当前].角色信息.最大经验))
end

local 升级按钮 = 人物:创建我的按钮(__res:getPNGCC(1, 626, 28, 58, 34, true), "升级按钮", 250, 433, "升级")

function 升级按钮:左键弹起(x, y, msg)
    发送数据(当前 or self and self.当前, 9)
end

local 化境按钮 = 人物:创建我的按钮(__res:getPNGCC(1, 626, 28, 58, 34, true), "化境按钮", 250, 433, "化境")

function 化境按钮:左键弹起(x, y, msg)
    发送数据(当前 or self and self.当前, 91)
end

local 属性按钮 = 人物:创建我的单选按钮(__res:getPNGCC(1, 401, 65, 175, 43, true), __res:getPNGCC(1, 963, 495, 175, 43, true), "属性按钮",
    329, 61, "属 性")

function 属性按钮:左键按下(消息, x, y)
    人物.信息按钮:置选中(false)
    人物.属性按钮:置选中(true)
    人物:属性重置()
    人物.属性:置可见(true)
    人物.信息:置可见(false)
end

local 信息按钮 = 人物:创建我的单选按钮(__res:getPNGCC(1, 401, 65, 175, 43, true), __res:getPNGCC(1, 963, 495, 175, 43, true), "信息按钮",
    520, 61, "信 息")

function 信息按钮:左键按下(消息, x, y)
    人物.属性按钮:置选中(false)
    人物.信息按钮:置选中(true)
    人物.信息:重置()
    人物.属性:置可见(false)
    人物.信息:置可见(true)
end

local 属性 = 人物属性.人物:创建控件("属性", 329, 105, 367, 359)

function 属性:初始化()
    local nsf = require('SDL.图像')(367, 359)
    if nsf:渲染开始() then
        local lssj = 取属性背景(0, 0, 367, 200, true)
        lssj:显示(0, 158)
        字体18:置颜色(255, 255, 255)
        lssj = __res:getPNGCC(1, 400, 127, 305, 18)
        local 类型 = { "气血", "魔法", "愤怒" }
        for i = 1, 3 do
            lssj:显示(62, 13 + ((i - 1) * 30))
            字体18:取图像(类型[i]):置混合(0):显示(10, 13 + ((i - 1) * 30))
        end
        nsf:渲染结束()
    end
    self:置精灵(nsf:到精灵())
end

local 普通属性按钮 = 属性:创建我的单选按钮(__res:getPNGCC(1, 449, 28, 174, 35, true), __res:getPNGCC(1, 964, 459, 173, 35, true),
    "普通属性按钮", 0, 111, "普通属性")

function 普通属性按钮:左键按下(消息, x, y)
    属性.普通属性:置可见(true)
    属性.更多属性:置可见(false)
end

local 更多属性按钮 = 属性:创建我的单选按钮(__res:getPNGCC(1, 449, 28, 174, 35, true), __res:getPNGCC(1, 964, 459, 173, 35, true),
    "更多属性按钮", 192, 111, "更多属性")

function 更多属性按钮:左键按下(消息, x, y)
    属性.普通属性:置可见(false)
    属性.更多属性:置可见(true)
    属性.更多属性.更多属性列表:重置()
end

local 气血条 = 属性:创建进度("气血条", 62, 14, 305, 16)
function 气血条:初始化()
    self:置精灵(__res:getPNGCC(1, 400, 163, 305, 16):到精灵())
end

function 气血条:显示(x, y)
    字体18:显示(x + 100, y - 2,
        string.format("%s/%s/%s", 多开数据[当前 or self and self.当前].角色信息.气血,
            (多开数据[当前 or self and self.当前].角色信息.气血上限 and 多开数据[当前 or self and self.当前].角色信息.气血上限 < 多开数据[当前 or self and self.当前].角色信息.最大气血 and 多开数据[当前 or self and self.当前].角色信息.气血上限) or
            多开数据[当前 or self and self.当前].角色信息.最大气血, 多开数据[当前 or self and self.当前].角色信息.最大气血))
end

local 魔法条 = 属性:创建进度("魔法条", 62, 44, 305, 16)
function 魔法条:初始化()
    self:置精灵(__res:getPNGCC(1, 401, 145, 305, 16):到精灵())
end

function 魔法条:显示(x, y)
    字体18:显示(x + 100, y - 2,
        string.format("%s/%s", 多开数据[当前 or self and self.当前].角色信息.魔法, 多开数据[当前 or self and self.当前].角色信息.最大魔法))
end

local 愤怒条 = 属性:创建进度("愤怒条", 62, 74, 305, 16)
function 愤怒条:初始化()
    self:置精灵(__res:getPNGCC(1, 401, 181, 304, 16):到精灵())
end

function 愤怒条:显示(x, y)
    字体18:显示(x + 100, y - 2, string.format("%s/%s", 多开数据[当前 or self and self.当前].角色信息.愤怒, 150))
end

local 普通属性 = 属性:创建控件("普通属性", 0, 158, 367, 202)

function 普通属性:初始化()
    local nsf = require('SDL.图像')(367, 202)
    if nsf:渲染开始() then
        字体18:置颜色(255, 255, 255)
        local lssj = __res:getPNGCC(1, 552, 0, 101, 23)
        local 类型 = { "命中", "伤害", "防御", "速度", "法伤", "法防", "体质", "魔力", "力量", "耐力", "敏捷", "潜能" }
        local pyx = 0
        local pyy = 0
        for i = 1, 12 do
            if i > 6 then
                pyx = 168
                pyy = -192
            end
            lssj:显示(74 + pyx, 8 + pyy + ((i - 1) * 32))
            字体18:取图像(类型[i]):置混合(0):显示(22 + pyx, 8 + pyy + ((i - 1) * 32))
        end
        nsf:渲染结束()
    end
    self:置精灵(nsf:到精灵())
end

function 普通属性:重置()
    local 类型 = { "命中", "伤害", "防御", "速度", "法伤", "法防", "体质", "魔力", "力量", "耐力", "敏捷", "潜力" }
    local nsf = require('SDL.图像')(367, 202)
    字体18:置颜色(39, 53, 81)
    if nsf:渲染开始() then
        local pyx = 0
        local pyy = 0
        for i = 1, 12 do
            if i > 6 then
                pyx = 168
                pyy = -192
            end
            字体18:取图像(多开数据[当前 or self and self.当前].角色信息[类型[i]]):置混合(0):显示(82 + pyx, 11 + pyy + ((i - 1) * 32))
        end
        nsf:渲染结束()
    end
    self.数据 = nsf:到精灵()
end

function 普通属性:显示(x, y)
    if self.数据 then self.数据:显示(x, y) end
end

local 加点按钮 = 普通属性:创建我的按钮(__res:getPNGCC(1, 626, 28, 58, 34, true), "加点按钮", 298, 162, "加点")

function 加点按钮:左键弹起(x, y, msg)
    多开数据[当前].__UI界面.窗口层.人物加点:打开()
end

local 更多属性 = 属性:创建控件("更多属性", 0, 158, 367, 202)

function 更多属性:初始化()
    self:置可见(false)
end

local 更多属性列表 = 更多属性:创建列表("更多属性列表", 10, 5, 357, 192)

function 更多属性列表:初始化()
    self:置文字(字体18)
    self.选中精灵 = nil
    self.焦点精灵 = nil
    self.行高度 = self.行高度 + 9
end

local function 取公式(类型, 数额)
    内容 = "(0)"
    if 数额 and tonumber(数额) > 0 then
        if 类型 == "狂暴等级" then
            return "(" .. string.format("%.2f", 数额 / 多开数据[当前 or self and self.当前].角色信息.等级 * 3) .. "%)"
        elseif 类型 == "穿刺等级" then
            return "(" .. string.format("%.2f", 数额 / 多开数据[当前 or self and self.当前].角色信息.等级 / 30 * 100) .. "%)"
        elseif 类型 == "物理暴击等级" or 类型 == "法术暴击等级" or 类型 == "抗法术暴击等级" or 类型 == "抗物理暴击等级" then
            return "(" .. string.format("%.2f", 数额 / 多开数据[当前 or self and self.当前].角色信息.等级) .. "%)"
        elseif 类型 == "封印命中等级" or 类型 == "抵抗封印等级" then
            return "(" .. string.format("%.2f", 数额 / 多开数据[当前 or self and self.当前].角色信息.等级 * 0.815) .. "%)"
        end
    end
    return 内容
end

function 更多属性列表:重置()
    self:清空()
    local sxxx = { "法伤", "固定伤害", "狂暴等级", "穿刺等级", "物理暴击等级", "法术暴击等级", "法术伤害结果", "封印命中等级", "格挡值", "法防", "恢复气血效果", "气血回复效果",
        "抵抗封印等级", "抗法术暴击等级", "抗物理暴击等级" }
    self:置颜色(255, 255, 255)
    for i = 1, #sxxx do
        self:添加()
        local nsf = require('SDL.图像')(340, 23)
        if nsf:渲染开始() then
            local lssj = 取输入背景(0, 0, 150, 23)
            lssj:显示(148, 0)
            字体18:置颜色(255, 255, 255)
            字体18:取图像(sxxx[i]):置混合(0):显示(0, 0)
            字体18:置颜色(39, 53, 81)
            if i <= 18 then
                local 属性类型 = 多开数据[当前 or self and self.当前].角色信息[sxxx[i]]
                if 属性类型 == nil then 属性类型 = 0 end
                if i == 5 then
                    字体18:取图像(string.format("%s+%s  %s", 属性类型, 取公式(sxxx[i], 属性类型),
                        (多开数据[当前 or self and self.当前].角色信息.物理暴击率 or 0) .. "%")):显示(159, 0)
                elseif i == 6 then
                    字体18:取图像(string.format("%s+%s  %s", 属性类型, 取公式(sxxx[i], 属性类型),
                        (多开数据[当前 or self and self.当前].角色信息.法术暴击率 or 0) .. "%")):显示(159, 0)
                else
                    字体18:取图像(string.format("%s+%s", 属性类型, 取公式(sxxx[i], 属性类型))):显示(159, 0)
                end
            else
                字体18:取图像(string.format("%s(+%s", 属性类型 or 0, 取公式(sxxx[i], 属性类型))):显示(159, 0)
            end
            nsf:渲染结束()
        end
        self.子控件[i]:置精灵(nsf:到精灵())
    end
end

local 信息 = 人物属性.人物:创建控件("信息", 326, 105, 366, 355)

function 信息:初始化()
    local nsf = require('SDL.图像')(366, 355)
    if nsf:渲染开始() then
        local lssj = 取属性背景(0, 0, 366, 355, true)
        lssj:显示(0, 0)
        lssj = 取输入背景(0, 0, 160, 23)
        字体18:置颜色(255, 255, 255)
        local 类型 = { "I D", "称谓", "帮派", "人气", "帮贡", "门贡", "活力", "体力" }
        for i = 1, #类型 do
            lssj:显示(76, 12 + ((i - 1) * 43))
            字体18:取图像(类型[i]):显示(25, 12 + ((i - 1) * 43))
        end
        nsf:渲染结束()
    end
    self:置精灵(nsf:到精灵())
end

function 信息:重置()
    local nsf = require('SDL.图像')(366, 355)
    if nsf:渲染开始() then
        字体18:置颜色(39, 53, 81)
        local 类型 = { "数字id", "当前称谓", "BPMC", "人气", "BG", "门贡", "活力", "体力" }
        for i = 1, #类型 do
            if 多开数据[当前 or self and self.当前].角色信息[类型[i]] and 多开数据[当前 or self and self.当前].角色信息[类型[i]] ~= "" then
                字体18:取图像(多开数据[当前 or self and self.当前].角色信息[类型[i]]):显示(85, 13 + ((i - 1) * 43))
            end
        end
        nsf:渲染结束()
    end
    self.数据 = nsf:到精灵()
end

function 信息:显示(x, y)
    if self.数据 then self.数据:显示(x, y) end
end

local 称谓按钮 = 信息:创建我的按钮(__res:getPNGCC(2, 493, 765, 118, 35, true), "称谓按钮", 253, 49, "更换称谓")

function 称谓按钮:左键弹起(x, y, msg)
    多开数据[当前].__UI界面.窗口层.人物称谓:打开()
end

local 称号按钮 = 信息:创建我的按钮(__res:getPNGCC(2, 493, 765, 118, 35, true), "称号按钮", 253, 149, "称号系统")

function 称号按钮:左键弹起(x, y, msg)
    if 多开数据[当前].__UI界面.窗口层.简单_称号系统.是否可见 then
        多开数据[当前].__UI界面.窗口层.简单_称号系统:置可见(false)
    else
        发送数据(当前 or self and self.当前,194,{序号1=1})
    end
end


----------------------------------------------------技能分类

local 技能 = 人物属性:创建控件("技能", 0, 0, 773, 483)

function 技能:初始化()
    local nsf = require('SDL.图像')(773, 483)
    if nsf:渲染开始() then
        取属性背景(0, 0, 687, 300, true):显示(17, 108)
        nsf:渲染结束()
    end
    self:置精灵(nsf:到精灵())
end

function 技能:重置()
    self:置可见(true)
    人物属性.人物:置可见(false)
    人物属性.修炼:置可见(false)
    技能.师门技能:重置()
end

local 师门技能按钮 = 技能:创建我的单选按钮(__res:getPNGCC(1, 401, 65, 175, 43, true):拉伸(125, 35),
    __res:getPNGCC(1, 963, 495, 175, 43, true):拉伸(125, 35), "师门技能按钮", 14, 61, "师门技能")

function 师门技能按钮:左键按下(消息, x, y)
    技能.师门技能:重置()
end

local 辅助技能按钮 = 技能:创建我的单选按钮(__res:getPNGCC(1, 401, 65, 175, 43, true):拉伸(125, 35),
    __res:getPNGCC(1, 963, 495, 175, 43, true):拉伸(125, 35), "辅助技能按钮", 14 + 135, 61, "辅助技能")

function 辅助技能按钮:左键按下(消息, x, y)
    技能.辅助技能:重置()
end

local 剧情技能按钮 = 技能:创建我的单选按钮(__res:getPNGCC(1, 401, 65, 175, 43, true):拉伸(125, 35),
    __res:getPNGCC(1, 963, 495, 175, 43, true):拉伸(125, 35), "剧情技能按钮", 14 + 135 * 2, 61, "剧情技能")

function 剧情技能按钮:左键按下(消息, x, y)
    技能.剧情技能:重置()
end
local 强化技能按钮 =技能:创建我的单选按钮(__res:getPNGCC(1, 401, 65, 175, 43, true):拉伸(125, 35),
    __res:getPNGCC(1, 963, 495, 175, 43, true):拉伸(125, 35), "强化技能按钮", 14 + 135 * 4, 61, "强化技能")
function 强化技能按钮:左键弹起(x, y, msg)
    技能.强化技能:重置()
end
local 经脉流派按钮 = 技能:创建我的按钮(__res:getPNGCC(1, 401, 65, 175, 43, true):拉伸(125, 35), "经脉流派按钮", 14 + 135 * 3, 61, "经脉流派")

function 经脉流派按钮:左键弹起(x, y, msg)
    if 多开数据[当前 or self and self.当前].角色信息.门派 == "无" or 多开数据[当前 or self and self.当前].角色信息.门派 == "无门派" then
        多开数据[当前 or self and self.当前].__UI弹出.提示框:打开("#Y/请先加入门派！")
    else
        多开数据[当前].__UI界面.窗口层.奇经八脉:打开()
        多开数据[当前].__UI界面.窗口层.人物属性:置可见(false)
    end
end

----------------------------------------------------技能分类师门技能

local 师门技能 = 技能:创建控件("师门技能", 17, 108, 700, 372)

function 师门技能:初始化()
    local nsf = require('SDL.图像')(688, 372)
    if nsf:渲染开始() then
        __res:getPNGCC(2, 794, 575, 295, 291):显示(7, 7)
        __res:getPNGCC(2, 795, 885, 373, 115):显示(308, 7)
        字体18:置颜色(255, 255, 255)
        字体18:取图像("特"):显示(5, 318)
        字体18:取图像("技"):显示(5, 337)
        nsf:渲染结束()
    end
    self:置精灵(nsf:到精灵())
    self:置可见(true)
end

function 师门技能:重置()
    人物属性.技能.师门技能:置可见(true)
    人物属性.技能.辅助技能:置可见(false)
    人物属性.技能.剧情技能:置可见(false)
    人物属性.技能.强化技能:置可见(false)
    人物属性.技能.师门技能按钮:置选中(true)
    人物属性.选中技能 = nil
    人物属性.技能选中 = nil
    人物属性.技能.师门技能.师门技能网格:置技能(多开数据[当前 or self and self.当前].角色信息.师门技能)
    人物属性.技能.师门技能.特殊技能网格:置技能(多开数据[当前 or self and self.当前].角色信息.特殊技能)
end

local 师门技能网格 = 师门技能:创建网格("师门技能网格", 0, 0, 300, 300)

function 师门技能网格:初始化()
    self:创建格子(60, 60, 5, 5, 1, 7)
end

function 师门技能网格:左键弹起(x, y, a, b, msg)
    if not self.子控件[a]._spr.模型 then return end
    师门技能.技能文本:清空()
    师门技能.技能文本:置文本("#Y" .. 多开数据[当前 or self and self.当前].角色信息.师门技能[a].名称)
    师门技能.技能文本:置文本("#K" .. 师门技能.师门技能网格.子控件[a]._spr.数据[1])
    师门技能.包含技能网格:置技能(多开数据[当前 or self and self.当前].角色信息.师门技能[a].包含技能)
    if 人物属性.选中技能 then
        self.子控件[人物属性.选中技能]._spr.确定 = nil
    end
    人物属性.选中技能 = a
    self.子控件[a]._spr.确定 = true
end

function 师门技能网格:置技能(数据)
    local 坐标 = { { 32, 70 }, { 32, 174 }, { 125, 17 }, { 125, 120 }, { 123, 225 }, { 219, 70 }, { 219, 174 } }
    for i = 1, #师门技能网格.子控件 do
        local lssj = __技能格子.创建(当前)
        lssj:置数据(数据[i], 55, 55)
        师门技能网格.子控件[i]:置精灵(lssj)
        师门技能网格.子控件[i]:置坐标(坐标[i][1], 坐标[i][2])
    end
end

local 技能文本 = 师门技能:创建文本("技能文本", 316, 12, 355, 100)

function 技能文本:初始化()

end

local 包含技能网格 = 师门技能:创建网格("包含技能网格", 308, 127, 370, 166)

function 包含技能网格:初始化()
    self:创建格子(178, 64, 10, 10, 8, 2)
end

function 包含技能网格:左键弹起(x, y, a, b, msg)
    if not self.子控件[a]._spr or not self.子控件[a]._spr.模型 then return end
    self.子控件[a]._spr:详情打开(x, y)
    人物属性.技能选中 = { self.子控件[a]._spr.技能名称, self.子控件[a]._spr.门派 }
end

function 包含技能网格:置技能(数据)
    for i = 1, #包含技能网格.子控件 do
        local lssj = __技能格子2.创建(当前)
        lssj.门派 = 多开数据[当前 or self and self.当前].角色信息.门派
        lssj.技能名称 = (数据[i] or {}).名称
        lssj:置数据(数据[i], 5, 5, 55, 55, 178, 64, true)
        包含技能网格.子控件[i]:置精灵(lssj)
    end
end

local 特殊技能网格 = 师门技能:创建网格("特殊技能网格", 35, 310, 385, 56)

function 特殊技能网格:初始化()
    self:创建格子(55, 55, 0, 10, 1, 6)
end

function 特殊技能网格:左键弹起(x, y, a, b, msg)
    if not self.子控件[a]._spr.模型 then return end
    if self.子控件[a]._spr and self.子控件[a]._spr.数据 then
        self.子控件[a]._spr:详情打开(x, y)
    end
end

function 特殊技能网格:置技能(数据)
    for i = 1, #特殊技能网格.子控件 do
        local lssj = __技能格子3.创建(当前)
        lssj.门派 = '特技'
        lssj:置数据(数据[i], 55, 55)
        特殊技能网格.子控件[i]:置精灵(lssj)
    end
end

local 特效按钮 = 师门技能:创建我的按钮(__res:getPNGCC(3, 2, 507, 124, 41, true):拉伸(66, 41), "特效按钮", 432, 319, "特效")

function 特效按钮:左键弹起(x, y, msg)

end

local 战斗设置按钮 = 师门技能:创建我的按钮(__res:getPNGCC(3, 2, 507, 124, 41, true):拉伸(114, 41), "战斗设置按钮", 501, 319, "战斗设置")

function 战斗设置按钮:左键弹起(x, y, msg)
    -- 多开数据[当前].__UI界面.窗口层.战斗自动:打开()
end

local 使用按钮 = 师门技能:创建我的按钮(__res:getPNGCC(3, 2, 507, 124, 41, true):拉伸(66, 41), "使用按钮", 619, 319, "使用")

function 使用按钮:左键弹起(x, y, msg)
    if 人物属性.技能选中 then
        if not 多开数据[当前].__主控.战斗中 then
            local 页数
            if 人物属性.技能选中[2] == '生活' then
                页数 = 2
            elseif 人物属性.技能选中[2] == "剧情" then
                页数 = 3
            elseif 人物属性.技能选中[2] ~= "特技" then
                页数 = 1
            end
            发送数据(当前, 13.1, { 名称 = 人物属性.技能选中[1], 类型 = 页数 })
        end
    end
end

----------------------------------------------------技能分类辅助技能

local 辅助技能 = 技能:创建控件("辅助技能", 17, 108, 700, 372)

function 辅助技能:初始化()
    local nsf = require('SDL.图像')(700, 372)
    if nsf:渲染开始() then
        取白色背景(0, 0, 437, 290, true):显示(7, 4)
        取白色背景(0, 0, 233, 290, true):显示(447, 4)
        nsf:渲染结束()
    end
    self:置精灵(nsf:到精灵())
end

--
function 辅助技能:重置()
    人物属性.技能.师门技能:置可见(false)
    人物属性.技能.剧情技能:置可见(false)
    人物属性.技能.辅助技能:置可见(true)
    人物属性.技能.强化技能:置可见(false)
    人物属性.技能.辅助技能按钮:置选中(true)
    人物属性.选中技能 = nil
    人物属性.技能选中 = nil
    人物属性.技能.辅助技能.辅助技能网格:置技能(多开数据[当前 or self and self.当前].角色信息.辅助技能)
end

local 辅助技能网格 = 辅助技能:创建网格("辅助技能网格", 20, 10, 437, 275)

function 辅助技能网格:初始化()
    self:创建格子(190, 61, 10, 10, 10, 2, true)
end

function 辅助技能网格:左键弹起(x, y, a, b, msg)
    if not self.子控件[a]._spr.模型 then return end
    辅助技能.技能文本:清空()
    辅助技能.技能文本:置文本("#R" .. 多开数据[当前 or self and self.当前].角色信息.辅助技能[a].名称)
    辅助技能.技能文本:置文本("#K" .. self.子控件[a]._spr.数据[1])
    local 临时消耗 = 生活技能消耗(多开数据[当前 or self and self.当前].角色信息.辅助技能[a].等级 + 1)
    辅助技能.技能文本:置文本("#Y/学习消耗：" ..
        临时消耗.经验 .. "点人物经验、" .. 临时消耗.帮贡 .. "点帮贡、" .. 临时消耗.需求 .. "点需要帮贡、" .. 临时消耗.金钱 .. "两银子#R/（>=40级的生活技能必须在加入帮派后才可学习）")
    if 人物属性.选中技能 then
        self.子控件[人物属性.选中技能]._spr.确定 = nil
    end
    人物属性.选中技能 = a
    人物属性.技能选中 = { self.子控件[a]._spr.技能名称, self.子控件[a]._spr.门派 }
    self.子控件[a]._spr.确定 = true
end

function 辅助技能网格:置技能(数据)
    for i = 1, #辅助技能网格.子控件 do
        local lssj = __技能格子2.创建(当前)
        lssj.门派 = '生活'
        lssj.技能名称 = (数据[i] or {}).名称
        lssj:置数据(数据[i], 2, 2, 55, 55, 190, 61, true, true)
        辅助技能网格.子控件[i]:置精灵(lssj)
    end
end

local 辅助使用按钮 = 辅助技能:创建我的按钮(__res:getPNGCC(3, 2, 507, 124, 41, true):置拉伸(94,41), "辅助使用按钮", 550, 316, "使用")

function 辅助使用按钮:左键弹起(x, y, msg)
    if 人物属性.技能选中 then
        if not 多开数据[当前].__主控.战斗中 then
            发送数据(当前, 13.1, { 名称 = 人物属性.技能选中[1], 类型 = 2 })
        end
    end
end

local 技能文本 = 辅助技能:创建文本("技能文本", 448, 10, 219, 270)

function 技能文本:初始化()

end

local 烹饪按钮 = 辅助技能:创建我的按钮(__res:getPNGCC(3, 2, 507, 124, 41, true):置拉伸(94,41), "烹饪按钮", 0, 316, "烹饪")

function 烹饪按钮:左键弹起(x, y, msg)
    发送数据(当前 or self and self.当前, 3713)
end

local 炼药按钮 = 辅助技能:创建我的按钮(__res:getPNGCC(3, 2, 507, 124, 41, true):置拉伸(94,41), "炼药按钮", 110, 316, "炼药")

function 炼药按钮:左键弹起(x, y, msg)
    发送数据(当前 or self and self.当前, 3714)
end

local 摆摊按钮 = 辅助技能:创建我的按钮(__res:getPNGCC(3, 2, 507, 124, 41, true):置拉伸(94,41), "摆摊按钮", 220, 316, "摆摊")

function 摆摊按钮:左键弹起(x, y, msg)
    发送数据(当前 or self and self.当前, 3720)
end

local 收购按钮 = 辅助技能:创建我的按钮(__res:getPNGCC(3, 2, 507, 124, 41, true):置拉伸(94,41), "收购按钮", 330, 316, "收购")

function 收购按钮:左键弹起(x, y, msg)
    发送数据(当前 or self and self.当前, 3720.1)
end

local 学习按钮 = 辅助技能:创建我的按钮(__res:getPNGCC(3, 2, 507, 124, 41, true):置拉伸(94,41), "学习按钮", 440, 316, "学习")

function 学习按钮:左键弹起(x, y, msg)
    if 人物属性.选中技能 then
        发送数据(当前 or self and self.当前, 3712, { 类型="辅助技能", 序列 = 人物属性.选中技能 })
    else
        多开数据[当前 or self and self.当前].__UI弹出.提示框:打开("#Y/请先选中要学习的生活技能")
    end
end

----------------------------------------------------技能分类剧情技能

local 剧情技能 = 技能:创建控件("剧情技能", 17, 108, 700, 372)

function 剧情技能:初始化()
    local nsf = require('SDL.图像')(700, 372)
    if nsf:渲染开始() then
        取白色背景(0, 0, 437, 290, true):显示(7, 4)
        取白色背景(0, 0, 233, 290, true):显示(447, 4)
        nsf:渲染结束()
    end
    self:置精灵(nsf:到精灵())
end

--
function 剧情技能:重置()
    人物属性.技能.师门技能:置可见(false)
    人物属性.技能.辅助技能:置可见(false)
    人物属性.技能.剧情技能:置可见(true)
    人物属性.技能.强化技能:置可见(false)
    人物属性.技能.剧情技能按钮:置选中(true)
    人物属性.选中技能 = nil
    人物属性.技能技能 = nil
    人物属性.技能.剧情技能.剧情技能网格:置技能(多开数据[当前 or self and self.当前].角色信息.剧情技能)
end

local 剧情技能网格 = 剧情技能:创建网格("剧情技能网格", 20, 10, 437, 275)

function 剧情技能网格:初始化()
    self:创建格子(190, 61, 10, 10, 10, 2, true)
end

function 剧情技能网格:左键弹起(x, y, a, b, msg)
    if not self.子控件[a]._spr.模型 then return end
    辅助技能.技能文本:清空()
    辅助技能.技能文本:置文本("#R" .. 多开数据[当前 or self and self.当前].角色信息.剧情技能[a].名称)
    辅助技能.技能文本:置文本("#K" .. 剧情技能.剧情技能网格.子控件[a]._spr.数据[1])
    if 人物属性.选中技能 then
        self.子控件[人物属性.选中技能]._spr.确定 = nil
    end
    人物属性.选中技能 = a
    人物属性.技能选中 = { self.子控件[a]._spr.技能名称, self.子控件[a]._spr.门派 }
    self.子控件[a]._spr.确定 = true
end

function 剧情技能网格:置技能(数据)
    for i = 1, #剧情技能网格.子控件 do
        local lssj = __技能格子2.创建(当前)
        lssj.门派 = '剧情'
        lssj.技能名称 = (数据[i] or {}).名称
        lssj:置数据(数据[i], 2, 2, 55, 55, 190, 61, true, true)
        剧情技能网格.子控件[i]:置精灵(lssj)
    end
end

local 剧情使用按钮 = 剧情技能:创建我的按钮(__res:getPNGCC(3, 2, 507, 124, 41, true), "剧情使用按钮", 560, 316, "使用")

function 剧情使用按钮:左键弹起(x, y, msg)
    if 人物属性.技能选中 then
        if not 多开数据[当前].__主控.战斗中 then
            发送数据(当前, 13.1, { 名称 = 人物属性.技能选中[1], 类型 = 3 })
        end
    end
end

local 技能文本 = 剧情技能:创建文本("技能文本", 448, 10, 219, 270)

function 技能文本:初始化()

end

----------------------------------------------------修炼分类

local 修炼 = 人物属性:创建控件("修炼", 0, 0, 773, 483)

function 修炼:初始化()
    local nsf = require('SDL.图像')(420, 483)
    if nsf:渲染开始() then
        __res:getPNGCC(3, 973, 713, 43, 323):显示(15, 116)
        __res:getPNGCC(3, 1028, 714, 40, 255):显示(375, 116)
        nsf:渲染结束()
    end
    self:置精灵(nsf:到精灵())
    self.人物修 = nil
    self.bb修 = nil
end

function 修炼:显示(x, y)
    字体18:显示(x + 60, y + 60, "角色自身修炼  当前：" .. 多开数据[当前 or self and self.当前].角色信息.修炼.当前)
    字体18:显示(x + 420, y + 60, "召唤兽控制修炼  当前：" .. 多开数据[当前 or self and self.当前].角色信息.bb修炼.当前)
end

function 修炼:重置()
    self:置可见(true)
    人物属性.人物:置可见(false)
    人物属性.技能:置可见(false)
    修炼.自身修炼列表:重置()
    修炼.召唤兽控制列表:重置()
    self.人物修 = nil
    self.bb修 = nil
end

local 自身修炼列表 = 修炼:创建列表("自身修炼列表", 58, 117, 295, 335)

function 自身修炼列表:初始化()
    self:置文字(字体18)
    self.行高度 = 40
    self.行间距 = 31
end

function 自身修炼列表:重置()
    self:清空()
    local sxxx = { "攻击修炼", "防御修炼", "法术修炼", "抗法修炼", "猎术修炼" }
    self:置颜色(255, 255, 255)
    local lssj3 = __res:getPNGCC(1, 400, 127, 305, 18):拉伸(290, 18)
    local lssj4 = __res:getPNGCC(1, 401, 145, 305, 16):拉伸(288, 16)
    for i = 1, #sxxx do
        self:添加()
        local nsf = require('SDL.图像')(295, 40)
        if nsf:渲染开始() then
            local lssj = 多开数据[当前].__主控:计算修炼等级经验(多开数据[当前 or self and self.当前].角色信息.修炼[sxxx[i]][1],
                多开数据[当前 or self and self.当前].角色信息.修炼[sxxx[i]][3])
            local lssj2 = 多开数据[当前 or self and self.当前].角色信息.修炼[sxxx[i]][2] / lssj
            if lssj2 > 1 then lssj2 = 1 end
            lssj3:显示(0, 22)
            lssj4:平铺(math.floor(288 * lssj2), 16):显示(1, 23)
            字体18:置颜色(255, 255, 255)
            字体18:取图像(string.format("%s %s/%s", sxxx[i], 多开数据[当前 or self and self.当前].角色信息.修炼[sxxx[i]][1],
                多开数据[当前 or self and self.当前].角色信息.修炼[sxxx[i]][3])):置混合(0):显示(0, 0)
            字体18:置颜色(39, 53, 81)
            字体18:取图像(string.format("%s/%s", 多开数据[当前 or self and self.当前].角色信息.修炼[sxxx[i]][2], lssj)):显示(124, 22)
            nsf:渲染结束()
        end
        self.子控件[i]:置精灵(nsf:到精灵())
    end
end

function 自身修炼列表:左键弹起(x, y, i, item, msg)
    local sxxx = { "攻击修炼", "防御修炼", "法术修炼", "抗法修炼", "猎术修炼" }
    修炼.人物修 = sxxx[i]
end

local 召唤兽控制列表 = 修炼:创建列表("召唤兽控制列表", 417, 117, 295, 335)

function 召唤兽控制列表:初始化()
    self:置文字(字体18)
    self.行高度 = 40
    self.行间距 = 31
end

function 召唤兽控制列表:重置()
    self:清空()
    local sxxx = { "攻击控制力", "防御控制力", "法术控制力", "抗法控制力" }
    self:置颜色(255, 255, 255)
    local lssj3 = __res:getPNGCC(1, 400, 127, 305, 18):拉伸(290, 18)
    local lssj4 = __res:getPNGCC(1, 401, 145, 305, 16):拉伸(288, 16)
    for i = 1, #sxxx do
        self:添加()
        local nsf = require('SDL.图像')(295, 40)
        if nsf:渲染开始() then
            local lssj = 多开数据[当前].__主控:计算修炼等级经验(多开数据[当前 or self and self.当前].角色信息.bb修炼[sxxx[i]][1],
                多开数据[当前 or self and self.当前].角色信息.bb修炼[sxxx[i]][3])
            local lssj2 = 多开数据[当前 or self and self.当前].角色信息.bb修炼[sxxx[i]][2] / lssj
            if lssj2 > 1 then lssj2 = 1 end
            lssj3:显示(0, 22)
            lssj4:平铺(math.floor(288 * lssj2), 16):显示(1, 23)
            字体18:置颜色(255, 255, 255)
            字体18:取图像(string.format("%s %s/%s", sxxx[i], 多开数据[当前 or self and self.当前].角色信息.bb修炼[sxxx[i]][1],
                多开数据[当前 or self and self.当前].角色信息.bb修炼[sxxx[i]][3])):置混合(0):显示(0, 0)
            字体18:置颜色(39, 53, 81)
            字体18:取图像(string.format("%s/%s", 多开数据[当前 or self and self.当前].角色信息.bb修炼[sxxx[i]][2], lssj)):显示(124, 22)
            nsf:渲染结束()
        end
        self.子控件[i]:置精灵(nsf:到精灵())
    end
end

function 召唤兽控制列表:左键弹起(x, y, i, item, msg)
    local sxxx = { "攻击控制力", "防御控制力", "法术控制力", "抗法控制力" }
    修炼.bb修 = sxxx[i]
end

local 设为当前 = 修炼:创建我的按钮(__res:getPNGCC(3, 2, 507, 124, 41, true), "设为当前", 377, 400, "设为当前")

function 设为当前:左键弹起(x, y, msg)
    发送数据(当前 or self and self.当前, 14, { 人物 = 修炼.人物修, bb = 修炼.bb修 })
end




local 强化技能 = 技能:创建控件("强化技能", 17, 108, 560+270, 372)

function 强化技能:初始化()
    local nsf = require('SDL.图像')(700, 372)
    if nsf:渲染开始() then
        取白色背景(0, 0, 437, 290, true):显示(7, 4)
        取白色背景(0, 0, 233, 290, true):显示(447, 4)
        nsf:渲染结束()
    end
    self:置精灵(nsf:到精灵())
end

--
function 强化技能:重置()
    人物属性.技能.师门技能:置可见(false)
    人物属性.技能.辅助技能:置可见(false)
    人物属性.技能.剧情技能:置可见(false)
    人物属性.技能.强化技能:置可见(true)
    人物属性.技能.强化技能按钮:置选中(true)
    人物属性.选中技能 = nil
    人物属性.技能技能 = nil
    人物属性.技能.强化技能.强化技能网格:置技能(多开数据[当前 or self and self.当前].角色信息.强化技能)
end

local 强化技能网格 = 强化技能:创建网格("强化技能网格", 20, 10, 560+270, 275)

function 强化技能网格:初始化()
    self:创建格子(190, 61, 10, 10, 10, 2, true)
end

function 强化技能网格:左键弹起(x, y, a, b, msg)
    if not self.子控件[a]._spr.模型 then return end
    强化技能.技能文本:清空()
    强化技能.技能文本:置文本("#R" .. 多开数据[当前 or self and self.当前].角色信息.强化技能[a].名称)
    强化技能.技能文本:置文本("#K" .. 强化技能.强化技能网格.子控件[a]._spr.数据[1])
    if 人物属性.选中技能 then
        self.子控件[人物属性.选中技能]._spr.确定 = nil
    end
    人物属性.选中技能 = a
    人物属性.技能选中 = { self.子控件[a]._spr.技能名称,序列=a, self.子控件[a]._spr.门派 }
    self.子控件[a]._spr.确定 = true
end

function 强化技能网格:置技能(数据)
    for i = 1, #强化技能网格.子控件 do
        local lssj = __技能格子2.创建(当前)
        lssj.门派 = '强化'
        lssj.技能名称 = (数据[i] or {}).名称
        lssj:置数据(数据[i], 2, 2, 55, 55, 190, 61, true, true)
        强化技能网格.子控件[i]:置精灵(lssj)
    end
end

local 强化学习按钮 = 强化技能:创建我的按钮(__res:getPNGCC(3, 2, 507, 124, 41, true):置拉伸(94,41), "学习按钮", 440, 316, "学习")

function 强化学习按钮:左键弹起(x, y, msg)
    if 人物属性.技能选中 then
        发送数据(当前 or self and self.当前, 3712, { 类型="强化技能", 序列 = 人物属性.选中技能 })
    else
        多开数据[当前 or self and self.当前].__UI弹出.提示框:打开("#Y/请先选中要学习的强化技能")
    end
end

local 技能文本 = 强化技能:创建文本("技能文本", 448, 10, 219, 270)

function 技能文本:初始化()

end